﻿using System.Collections.Generic;
using System;
using ActionLogic.Impl;
using BlockLogic.Impl;

namespace BlockLogic.Interface
{
    public interface IRequestBuffer
    {
        Guid ID { get; }

        event ExecuteFunc OnRequestAdded;

        void Add(IRequest request);

        IEnumerable<IRequest> Get();

        IEnumerable<IRequest> GetAllRequest();

        double GetLastRequestTime();

        bool IsEmtpy();

        void Clear();

        int Count();

        RequestBufferState State { get; }

        long MaxCapacity { get; set; }
    }
}
